04. OOP 语法

面向对象编程语法

在此视频中,你将了解 Python 中的类和对象是什么样的代码。在下个部分,你将有机会自己探索代码,然后自己编写类。

面向对象编程语法

函数和方法

在上方视频的 1:44 处,说话者错误地将 init 称为函数,而不是方法。为何 init 不是函数?

函数和方法看起来很像。它们都使用关键字 def 。它们都有输入并返回输出。两者区别在于:方法位于类里面,而函数位于类外面。

self 是什么?

如果实例化以下对象,Python 如何区分这两个对象?

shirt_one = Shirt('red', 'S', 'short-sleeve', 15)
short_two = Shirt('yellow', 'M', 'long-sleeve', 20)

这时候 self 就派上用场了。如果你对 shirt_one 调用 change_price 方法,Python 如何知道更改 shirt_one 的价格,而不是 shirt_two 的价格?

shirt_one.change_price(12)

Python 在后台调用 change_price 方法:

    def change_price(self, new_price):

        self.price = new_price

Self 告诉 Python 在计算机中的何处查找 shirt_one 对象,然后,Python 更改 shirt_one 对象的价格。当你以 shirt_one.change_price(12) 形式调用 change_price 方法时, self 并未出现,但是实际上已发挥效用。

单词 self 只是个常用叫法。理论上,你可以使用任何其他名称,只要保持一致即可。实际上,你应该始终使用 self 而不是其他单词,否则其他人可能看不懂。